/*错误中间件：
	1、错误处理中间件是有四个参数的：app.use((err,req,res,next)=>{res.status(500).send("服务器端发生未知错误")})
	2、在对于同步api发生错误时候，会自动触发完成处理中间件
    3、对于异步api发生错误时候，需要通过next(err)来触发错误处理中间件
    4、在node内置环境中有一个Error构造函数，用于创建err实例对象 ，err对象中的message属性存了错误信息

*/



// 引入express第三方框架模块
let express = require("express");
const fs =require("fs");
// 创建网站服务器对象
const app = express();
// 同步代码发生错误时候，触发错误中间件的情况
app.get("/list",(req,res)=>{
	throw new Error("同步代码执行过程中产生了错误");

})

// 异步代码发生错误时候，通过next（err）触发错误中间件的情况
app.get("/async",(req,res,next)=>{
	fs.readFile("./first.txt","utf8",(err,result)=>{
		if (err) {
			next(err);
		}else {
			res.send(result);
		}
	})
	

})


// 错误处理中间件
app.use((err,req,res,next)=>{
	res.status(500).send(err.message);

})


// 监听端口
app.listen(3000);
console.log("服务器启动成功！");